package com.gwcloud.leetcode.hot100;

import com.gwcloud.leetcode.common.datastructure.ListNode;

/** 
* @ClassName   : Leetcode160 
* @author      : ganwei 
* @date        : 2020年4月30日 
* @Description : leetcode 160 相交链表 
*/
public class Leetcode0160 {
	/**
	 * -解题思路，如果两个链表相交，那么相交点之后的长度是相同的
	 * -1 指针 pA 指向 A 链表，指针 pB 指向 B 链表，依次往后遍历
	 * -2 如果 pA 到了末尾，则 pA = headB 继续遍历
	 * -3 如果 pB 到了末尾，则 pB = headA 继续遍历
	 * -4 比较长的链表指针指向较短链表head时，长度差就消除了
	 */
    public ListNode getIntersectionNode(ListNode headA, ListNode headB) {
    	ListNode indexA = headA;
    	ListNode indexB = headB;
    	if(indexA == null || indexB == null) {
    		return null;
    	}
    	
    	while(indexA != indexB) {
    		indexA = (indexA != null ? indexA.next : headB);
    		indexB = (indexB != null ? indexB.next : headA);
    	}
    	return indexA;
    }
    public static void main(String args[]) {
    	if(null == null) {
    		System.out.println("test");
    	}
    }
}
